font chooser: Update font list on font changes
authorMatthias Clasen <mclasen@redhat.com>
Sat, 22 Mar 2014 02:37:36 +0000 (22:37 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 22 Mar 2014 02:37:36 +0000 (22:37 -0400)
We do get a style-updated emission when new fonts are installed.
Update the font list in this case.

https://bugzilla.gnome.org/show_bug.cgi?id=726476

gtk/gtkfontchooserwidget.c

index 3918c4bfe8f8db41187ab8718ae1dfec4f17ed70..c3fdf3d0353cc0ab4bc137ce5e2a962cf7870f5f 100644 (file)
@@ -128,6 +128,8 @@ static void gtk_font_chooser_widget_finalize             (GObject         *objec
 static void gtk_font_chooser_widget_screen_changed       (GtkWidget       *widget,
                                                           GdkScreen       *previous_screen);
 
+static void gtk_font_chooser_widget_style_updated        (GtkWidget       *widget);
+
 static gboolean gtk_font_chooser_widget_find_font        (GtkFontChooserWidget *fontchooser,
                                                           const PangoFontDescription *font_desc,
                                                           GtkTreeIter          *iter);
@@ -481,6 +483,7 @@ gtk_font_chooser_widget_class_init (GtkFontChooserWidgetClass *klass)
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
   widget_class->screen_changed = gtk_font_chooser_widget_screen_changed;
+  widget_class->style_updated = gtk_font_chooser_widget_style_updated;
 
   gobject_class->finalize = gtk_font_chooser_widget_finalize;
   gobject_class->set_property = gtk_font_chooser_widget_set_property;
@@ -554,7 +557,6 @@ gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser)
   /* Load data and set initial style dependant parameters */
   gtk_font_chooser_widget_load_fonts (fontchooser);
   gtk_font_chooser_widget_set_cell_size (fontchooser);
-
   gtk_font_chooser_widget_take_font_desc (fontchooser, NULL);
 }
 
@@ -898,6 +900,16 @@ gtk_font_chooser_widget_screen_changed (GtkWidget *widget,
   gtk_font_chooser_widget_load_fonts (fontchooser);
 }
 
+static void
+gtk_font_chooser_widget_style_updated (GtkWidget *widget)
+{
+  GtkFontChooserWidget *fontchooser = GTK_FONT_CHOOSER_WIDGET (widget);
+
+  GTK_WIDGET_CLASS (gtk_font_chooser_widget_parent_class)->style_updated (widget);
+  gtk_font_chooser_widget_load_fonts (fontchooser);
+}
+
 static PangoFontFamily *
 gtk_font_chooser_widget_get_family (GtkFontChooser *chooser)
 {